package cz.pecinovsky.česky.oopnz._115_;
//Příliš žluťoučký kůň úpěl ďábelské ódy

import cz.pecinovsky.česky.oopnz.správce.Elipsa;
import cz.pecinovsky.česky.oopnz.správce.IKreslený;
import cz.pecinovsky.česky.oopnz.správce.Kreslítko;
import cz.pecinovsky.česky.oopnz.správce.Obdélník;

import cz.pecinovsky.česky.oopnz.utility.Barva;

// %I+ <119
//import cz.pecinovsky.česky.oopnz.tvary_03_implementují_ITvar.Elipsa;
//import cz.pecinovsky.česky.oopnz.tvary_03_implementují_ITvar.Obdélník;
// %I-

////////////////////////////////////////////////////////////////////////////////
//%%+  +++++ Konec ignorovaného počátečního textu +++++
//%X+ xxxxx Začátek přeskakovaného textu xxxxx
/*******************************************************************************
 *<pre>
 * Předchozí:   Není - toto_je_nově_definovaná_třída
 *              Ttt v projektu Ppp
 * Následující: Prozatím není
 *
 * Projekt  Ppp
 *   + Přidáno
 *   - Odebráno
 *   ~ Změněno
 *</pre>
 *
 * @author Rudolf PECINOVSKÝ
 * @version 6.03.2017 — 2010-11-08
 */
public class Auto_116_119
{    private Auto_116_119() {}   static
////////////////////////////////////////////////////////////////////////////////
//%X- ----- Konec přeskakovaného textu -----


//%I+ <119
//public class Auto
//%I-
//%X+ <119
public class Auto implements IKreslený
//%X-
{
//%X+ <118
    private Obdélník podvozek;
    private Obdélník kabina;
    private Elipsa   světloL;
    private Elipsa   světloP;


//%X-
    public Auto()
    {
//%I+ <118
//        new Obdélník(  0,  0, 128, 64, Barva.MODRÁ);
//        new Obdélník( 16, 16,  64, 32, Barva.ŠEDÁ );
//        new Elipsa  (112,  0,  16, 16, Barva.ŽLUTÁ);
//        new Elipsa  (112, 48,  16, 16, Barva.ŽLUTÁ);
//%I-
//%X+ <118
        podvozek = new Obdélník(  0,  0, 128, 64, Barva.MODRÁ);
        kabina   = new Obdélník( 16, 16,  64, 32, Barva.ŠEDÁ );
        světloL  = new Elipsa  (112,  0,  16, 16, Barva.ŽLUTÁ);
        světloP  = new Elipsa  (112, 48,  16, 16, Barva.ŽLUTÁ);
//%X-
    }
//%X+ <117


    public Auto(int x, int y)
    {
//%X-
//%I+ =117z
//        new Obdélník(x+  0, y+ 0, 128, 64, Barva.MODRÁ);
//        new Obdélník(x+ 16, y+16,  64, 32, Barva.ŠEDÁ );
//        new Elipsa  (x+112, y+ 0,  16, 16, Barva.ŽLUTÁ);
//        new Elipsa  (x+112, y+48,  16, 16, Barva.ŽLUTÁ);
//%I-
//%X+ <118
        podvozek = new Obdélník(x+  0, y+ 0, 128, 64, Barva.MODRÁ);
        kabina   = new Obdélník(x+ 16, y+16,  64, 32, Barva.ŠEDÁ );
        světloL  = new Elipsa  (x+112, y+ 0,  16, 16, Barva.ŽLUTÁ);
        světloP  = new Elipsa  (x+112, y+48,  16, 16, Barva.ŽLUTÁ);
//%X-
//%X+ <117
    }


    public Auto(int x, int y, Barva barvaPodvozku)
    {
//%X-
//%I+ =117z
//        new Obdélník(x+  0, y+ 0, 128, 64, barvaPodvozku);
//        new Obdélník(x+ 16, y+16,  64, 32, Barva.ŠEDÁ );
//        new Elipsa  (x+112, y+ 0,  16, 16, Barva.ŽLUTÁ);
//        new Elipsa  (x+112, y+48,  16, 16, Barva.ŽLUTÁ);
//    }
//%I-
//%X+ <118
        podvozek = new Obdélník(x+  0, y+ 0, 128, 64, barvaPodvozku);
        kabina   = new Obdélník(x+ 16, y+16,  64, 32, Barva.ŠEDÁ );
        světloL  = new Elipsa  (x+112, y+ 0,  16, 16, Barva.ŽLUTÁ);
        světloP  = new Elipsa  (x+112, y+48,  16, 16, Barva.ŽLUTÁ);
    }
//%X-
//%X+ <119


    /***************************************************************************
     * Prostřednictvím dodaného kreslítka vykreslí obraz své instance.
     *
     * @param kreslítko Kreslítko, které nakreslí instanci
     */
    @Override
    public void nakresli(Kreslítko kreslítko)
    {
        podvozek.nakresli(kreslítko);
        kabina  .nakresli(kreslítko);
        světloL .nakresli(kreslítko);
        světloP .nakresli(kreslítko);
    }
//%X-
}

//%%-  ----- Začátek ignorovaného závěrečného textu -----
////////////////////////////////////////////////////////////////////////////////

//== TESTY A METODA MAIN =======================================================

    /***************************************************************************
     * Testovací metoda.
     */
    public static void test()
    {
        new Auto();
        new Auto(100, 100);
        new Auto( 50, 200, Barva.ČERNÁ);
//        System.exit(0);
    }
    /** @param args Parametry příkazového řádku - nepoužívané. */
    public static void main( String[] args )  {  test();  }
}
